package demo01;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 *  Map集合的第一种遍历方式：是同Entry对象遍历
 *  Map集合中的方法：
 *      public Set<Map.Entry<K,V>> entrySet()：获取到Map集合中所有的键值对对象的集合（Set集合）
 *  实现步骤：
 *      1. 使用Map集合中的方法entrySet()，把Map集合中多个Entry对象取出来，存储到一个Set集合中
 *      2. 遍历Set集合，获取每一个Entry对象
 *      3. 使用Entry对象中的方法getKey()和getValue()获取键与值
 */
public class Demo03EntrySet {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("土司鸡", "土宝");
        map.put("老虎", "虎宝");
        map.put("粹花", "花儿");

        // 1. 使用Map集合中的方法entrySet()，把Map集合中多个Entry对象取出来，存储到一个Set集合中
        Set<Map.Entry<String, String>> set = map.entrySet();

        // 2. 遍历Set集合，获取每一个Entry对象
        // 使用迭代器遍历set集合
        Iterator<Map.Entry<String, String>> iterator = set.iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, String> mEntry = iterator.next();
            // 3. 使用Entry对象中的方法getKey()和getValue()获取键与值
            System.out.println(mEntry.getKey() + "=" + mEntry.getValue()); // 粹花=花儿 土司鸡=土宝 老虎=虎宝
        }

        // 使用增强for遍历set集合（遍历的简化版本）
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + "=" + entry.getValue()); // 粹花=花儿 土司鸡=土宝 老虎=虎宝
        }
    }
}